package com.nodecollege.cloud.service;

import com.nodecollege.cloud.common.model.BindVO;
import com.nodecollege.cloud.common.model.QueryVO;
import com.nodecollege.cloud.common.model.po.UpmsAppRole;
import com.nodecollege.cloud.common.model.po.UpmsAppRoleResource;

import java.util.List;

/**
 * @author LC
 * @date 2020/1/9 18:47
 */
public interface AppRoleService {

    /**
     * 查询应用预制角色
     *
     * @param appRole
     * @return
     */
    List<UpmsAppRole> getAppRoleListCache(QueryVO<UpmsAppRole> appRole);

    /**
     * 清除应用角色缓存
     */
    void clearAppRoleListCache();

    /**
     * 添加应用预制角色
     *
     * @param appRole
     */
    void addAppRole(UpmsAppRole appRole);

    /**
     * 更新应用预制角色
     *
     * @param appRole
     */
    void updateAppRole(UpmsAppRole appRole);

    /**
     * 删除应用预制角色
     *
     * @param appRole
     */
    void delAppRole(UpmsAppRole appRole);

    /**
     * 查询应用角色绑定的资源列表
     *
     * @param upmsAppRoleResource
     * @return
     */
    List<UpmsAppRoleResource> getAppRoleResourceListCache(UpmsAppRoleResource upmsAppRoleResource);

    /**
     * 清除应用角色资源列表
     * @param appRoleId
     */
    void clearAppRoleResourceListCache(Long appRoleId);

    /**
     * 绑定应用角色资源
     *
     * @param bindVO
     */
    void bindAppRoleResource(BindVO bindVO);
}
